package com.ichir.projects.uiflow.ui.api;

import java.util.Map;

import com.ichir.projects.uiflow.ApplicationContext;


/**
 * UI View API.
 * 
 * @author mahieddine
 * @since 1.0.0
 */
public interface IUiView extends IUiPart {

	/**
	 * Initialize UI View.
	 * @param context application context
	 * @param attributes event attributes
	 */
	void initializeView(ApplicationContext context, Map<String, Object> attributes);
	
	/**
	 * Refresh view.
	 * @param context application context
	 * @param attributes event attributes
	 */
	void refreshView(ApplicationContext context, Map<String, Object> attributes);
	
	/**
	 * Show view.
	 * @param context application context
	 * @param attributes event attributes
	 */
	void showView(ApplicationContext context, Map<String, Object> attributes);

	/**
	 * Dispose View.
	 * @param context application context
	 * @param attributes event attributes
	 */
	void disposeView(ApplicationContext context, Map<String, Object> attributes);
}
